package com.engine.salary.entity.taxdeclaration.dto;

import com.cloudstore.eccom.pc.table.WeaTableType;
import com.engine.salary.annotation.SalaryTable;
import com.engine.salary.annotation.SalaryTableOperate;
import com.engine.salary.annotation.TableTitle;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;
import java.util.Set;

/**
 * 个税申报记录列表
 * <p>Copyright: Copyright (c) 2022</p>
 * <p>Company: 泛微软件</p>
 *
 * @author qiantao
 * @version 1.0
 **/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@SalaryTable(pageId = "a4f85287-e3f9-4275-adn9-7d06e54y6rj8", tableType = WeaTableType.CHECKBOX, operates = {
        @SalaryTableOperate(text = "查看")
})
public class TaxDeclarationListDTO {

    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    @TableTitle(title = "薪资类型", dataIndex = "incomeCategory", key = "incomeCategory")
    private String incomeCategory;

    @JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8")
    @TableTitle(title = "税款所属期", dataIndex = "taxCycle", key = "taxCycle")
    private Date taxCycle;

    @JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8")
    @TableTitle(title = "薪资所属月", dataIndex = "salaryMonth", key = "salaryMonth")
    private Date salaryMonth;

    //@TableTitle(title = "个税扣缴义务人", dataIndex = "taxAgentId", key = "taxAgentId")
    private Long taxAgentId;

    @TableTitle(title = "个税扣缴义务人", dataIndex = "taxAgentName", key = "taxAgentName")
    private String taxAgentName;

    //@TableTitle(title = "操作人id", dataIndex = "operateEmployeeId", key = "operateEmployeeId")
    private Long operateEmployeeId;

    @TableTitle(title = "操作人", dataIndex = "operateEmployeeName", key = "operateEmployeeName")
    private String operateEmployeeName;

    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @TableTitle(title = "操作时间", dataIndex = "operateTime", key = "operateTime")
    private String operateTime;

    @TableTitle(title = "备注", dataIndex = "description", key = "description")
    private String description;

    private Set<String> opts;

}
